// pages/ucenter/publish/publish.js
//引入全局AV,引入leancloud sdk
const AV = getApp().globalData.AV

Page({

    /**
     * 页面的初始数据
     */
    data: {
        id: undefined,
        name: '',
        author: '',
        // 分类名称
        category: '0',
        // 封面图
        cover: '',
        // 简介
        desc: '',
        // 目录
        dir: '',

        // 选择范围
        range: []
    },

    // 上传文件
    upload() {
        wx.chooseMedia({
            //最多可以选择的文件个数
            count: 1,
            success: (result) => {
                //获取上传的图片路径
                console.log(result.tempFiles[0].tempFilePath);
                var localFileUri = result.tempFiles[0].tempFilePath
                //截取图片的文件名
                console.log(result.tempFiles[0].tempFilePath.split('/')[3]);
                var fileName = result.tempFiles[0].tempFilePath.split('/')[3]

                //选择图片成功后，将图片文件上传至leancloud服务器——通过本地路径构建文件
                const data = {
                    blob: {
                        uri: localFileUri
                    }
                }
                const file = new AV.File(fileName, data)

                //保存文件到leancloud服务器
                file.save().then((file) => {
                    console.log(`文件保存完成。URL：${file.url()}`);
                    this.setData({
                        cover: file.url()
                    })
                }, (error) => {
                    // 保存失败，可能是文件无法被读取，或者上传过程中出现问题
                });
            },
            fail: (res) => {},
            complete: (res) => {},
        })
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
      this.setData({
        list:JSON.parse(decodeURIComponent(options.list))
      })
        //获取leancloud数据库category里所有的name分类名
        const query = new AV.Query('Category');
        query.find().then((res) => {
            console.log(res);
            //将读取道德分类中的name汇总到listArr中
            // var listArr = res.map(item=>item.attributes.name)
            var listArr = []
            for (var i = 0; i < res.length; i++) {
                listArr.push(res[i].attributes.name)
            }
            console.log(listArr);
            this.setData({
                range: listArr
            })
        });
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    },

    onNameInput(ev) {
        this.setData({
            name: ev.detail.value
        })
    },

    onAuthorInput(ev) {
        this.setData({
            author: ev.detail.value
        })
    },
    onCategoryChange(ev) {
        this.setData({
            category: ev.detail.value
        })
    },

    //简介输入
    onDescInput(ev) {
        this.setData({
            desc: ev.detail.value
        })
    },

    //   目录输入
    onDirInput(ev) {
        this.setData({
            dir: ev.detail.value
        })
    },

    onReset() {
        this.setData({
            name: '',
            author: '',
            category: '0',
            cover: '',
            desc: '',
            dir: ''
        })
    },
    onSubmit(ev) {
        //打印提交的数据
        console.log(ev);
        console.log(ev.detail.value);

        // 声明 class
        const Todo = AV.Object.extend('Book_20230112_091658');

        // 构建对象
        const todo = new Todo();

        // 为属性赋值
        todo.set('author', ev.detail.value.author);
        todo.set('cover', this.data.cover);
        todo.set('name', this.data.range[ev.detail.value.category]);
        todo.set('desc', ev.detail.value.desc);
        todo.set('title', ev.detail.value.name);

        // 将对象保存到云端
        todo.save().then((todo) => {
            // 成功保存之后，执行其他逻辑
            console.log(`保存成功。objectId：${todo.id}`);
        }, (error) => {
            // 异常处理
        });
    }
})